package com.cloud.form.api.service;

import java.util.List;

import com.cloud.form.api.bean.Assembly;
import com.cloud.form.api.entity.FormAssemblyDef;
import com.cloud.form.api.entity.FormAssemblyInst;

public interface FormDragerService {
	
	/**
	 * 加载组件模板
	 * @return
	 */
	List<FormAssemblyDef> listAssemblies();
	
	/**
	 * 加载表单组件
	 * @param formId
	 * @param actDefId 当有传递环节参数时，需要考虑权限问题
	 * @return
	 */
	List<FormAssemblyInst> loadFormAssemblies(Long formId, Long actDefId);
	
	/**
	 * 添加组件
	 * @param assembly
	 * @return
	 */
	long createAssemby(Assembly assembly);

	/**
	 * 移动组件位置
	 * @param id
	 * @param x
	 * @param y
	 */
	void move(long id, int x, int y);

	void saveAssemblies(List<Assembly> assemblies);

	void delete(long id);

	void clear(long formId);
	

}
